package com.atguigu.product.controller;


import com.atguigu.product.bean.Product;
import com.atguigu.product.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProductController {

    @Autowired
    ProductService productService;

    @GetMapping("/product/{id}")//查询商品
    public Product getProduct(@PathVariable("id")long productId){//因为productId是路径变量，所以加入注解@PathVariable
        System.out.println("hello");
        return productService.getProductById(productId);
    }
}
/**
 * @PathVariable 是 Spring 框架中的一个注解，用于从 URL 路径中提取变量值并绑定到控制器方法的参数上。在您提供的代码中，@PathVariable("id")
 *     的作用是将 URL 路径中的 {id} 占位符的值绑定到方法参数 productId 上。
 * 具体解释:
 * 当客户端访问形如 /product/123 的 URL 时：
 * @GetMapping("/product/{id}") 会匹配这个请求路径
 * @PathVariable("id") 会从路径中提取 123 这个值
 * 提取的值会被转换为 long 类型并赋值给 productId 参数
 * 最终调用 productService.getProductById(123) 方法查询商品信息
 *
 * Mapping == 【映射关系】；  GetMapping ==【建立映射关系】
 */